// 测试基本的try-catch
console.log("1. 基本try-catch测试");
try {
    console.log("尝试执行可能出错的代码");
    var x = undefinedVariable; // 这会引发错误
    console.log("这行不会执行");
} catch (error) {
    console.log("捕获到错误");
}

// 测试try-catch使用error变量
console.warn("2. 使用error变量");
try {
    var y = 10;
    var z = y.nonExistentMethod(); // 这会引发错误
} catch (err) {
    console.log("错误信息: 属性访问未定义");
}

// 测试throw关键字
console.error("3. 测试throw关键字");
try {
    console.log("即将抛出自定义错误");
    throw "这是自定义异常";
    console.log("这行不会执行");
} catch (customError) {
    console.log("捕获到自定义错误");
}

// 测试完整的try-catch-finally
console.log("\n4. 测试try-catch-finally");
try {
    console.log("尝试执行可能出错的代码");
    throw "再次发生错误";
} catch (error) {
    console.log("捕获到错误");
} finally {
    console.log("finally块总是执行");
}

// 测试try-finally（无catch）
console.log("\n5. 测试try-finally（无catch）");
try {
    console.log("尝试执行正常代码");
    // 没有错误
} finally {
    console.log("finally块依然执行");
}

console.log("测试完成"); 